package cn.itcalvin.sncoal.cth.pojo.response.pf;

import cn.itcalvin.sncoal.cth.config.BigDecimalSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.List;

@Data
public class RespPfItemList {

    /**
     * 指标id
     */
    @ApiModelProperty(value = "id")
    @NotNull(message = "id不能为null")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 评分Id
     */
    @ApiModelProperty(value = "评分Id")
    @NotNull(message = "评分Id不能为null")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long pfId;

    /**
     * 矿井Id
     */
    @ApiModelProperty(value = "矿井Id")
    @NotNull(message = "矿井Id不能为null")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long mineId;

    /**
     * 系统ID
     */
    @ApiModelProperty(value = "系统ID")
    @NotNull(message = "系统ID不能为null")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long systemId;

    /**
     * 系统指标ID
     */
    @ApiModelProperty(value = "系统指标ID")
    @NotNull(message = "系统指标ID不能为null")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long systemZbId;

    @ApiModelProperty(value="矿井Id")
    @NotNull(message = "矿井Id不能为null")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long pfSystemId;

    /**
     * 数据状态 1.草稿 2.提交
     */
    @ApiModelProperty(value = "1.未提交 2已提交")
    @NotNull(message = "数据状态 不能为null")
    private Integer zpState;

    /**
     * 数据状态 1.草稿 2.提交
     */
    @ApiModelProperty(value = "1.未提交 2已提交")
    @NotNull(message = "数据状态 不能为null")
    private Integer hyState;

    /**
     * 系统名称
     */
    @ApiModelProperty(value = "系统名称")
    @Size(max = 255, message = "系统名称最大长度要小于 255")
    @NotBlank(message = "系统名称不能为空")
    private String systemName;

    /**
     * 内容
     */
    @ApiModelProperty(value = "内容")
    @NotBlank(message = "内容不能为空")
    private String content;
    @ApiModelProperty(value = "内容")
    @NotBlank(message = "内容不能为空")
    private String contentDesc;
    /**
     * 指标内容
     */
    @ApiModelProperty(value = "指标内容")
    @NotBlank(message = "指标内容不能为空")
    private String zbContent;

    /**
     * 评分方法
     */
    @ApiModelProperty(value = "评分方法")
    @NotBlank(message = "评分方法不能为空")
    private String pfMethod;

    /**
     * 指标满分值
     */
    @ApiModelProperty(value = "指标满分值")
    @NotNull(message = "指标满分值不能为null")
    @JsonSerialize(using = BigDecimalSerialize.class)
    private BigDecimal zbTotalScore;


    @ApiModelProperty(value = "权重值")
    @NotNull(message = "权重值不能为null")
    @JsonSerialize(using = BigDecimalSerialize.class)
    private BigDecimal weight;

    @ApiModelProperty(value = "当前指标自评得分")
    @NotNull(message = "当前指标自评得分不能为null")
    @JsonSerialize(using = BigDecimalSerialize.class)
    private BigDecimal pfScore;

    @ApiModelProperty(value = "当前指标核验得分")
    @NotNull(message = "当前指标核验得分不能为null")
    @JsonSerialize(using = BigDecimalSerialize.class)
    private BigDecimal hyScore;

    @ApiModelProperty(value = "自评内容-可以写失分的备注")
    private String pfContent;

    @ApiModelProperty(value = "核验内容-可以写失分的备注")
    private String hyContent;

    @ApiModelProperty(value = "0.都无 1.有无瓦斯智能抽采 2.有无瓦斯智能防突 3.有无立井提升 4.有无轨道运输")
    @NotNull(message = "0.都无 1.有无瓦斯智能抽采 2.有无瓦斯智能防突 3.有无立井提升 4.有无轨道运输不能为null")
    private Integer zbState;

    @ApiModelProperty(value = "任务状态")
    @NotNull(message = "任务状态")
    private Integer taskState;

    @ApiModelProperty(value = "指标明细")
    private List<RespPfItemDetailsList> respPfItemDetailsListList;
}
